import {createSlice} from "@reduxjs/toolkit"
import axios from "axios"
let hitokotoSlice = createSlice({
    name:"hitokoto",
    initialState:{
        value:""
    },
    reducers:{
        saveHitokoto(state,{payload}){
            //只能写同步代码
            state.value = payload;
        }
    }
})

// 提取 action 方法
let {saveHitokoto} = hitokotoSlice.actions;


// 调用api接口，获取数据
export let asyncGetHitokoto = ()=>{
    return async (dispatch)=>{
        //获取数据
        let {data:{hitokoto}} = await axios.get("https://v1.hitokoto.cn");
        // console.log(hitokoto);
        //调用同步方法更新store 数据
        dispatch(saveHitokoto(hitokoto));
    }
}

//暴露 reduce 函数
export default hitokotoSlice.reducer;